package org.dromara.system.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.bo.ReportChartBo;
import org.dromara.system.domain.pojo.*;
import org.dromara.system.domain.vo.DashVo;
import org.dromara.system.domain.vo.DataVo;
import org.dromara.system.domain.vo.DeviceAlarmVo;
import org.dromara.system.domain.vo.SysSystemReportVo;

import java.util.List;

/**
 * 服务层
 *
 * @author Lion Li
 */
public interface ISysSystemReportService {

    void addReport();

    List<ReportChart> getReportChart(ReportChartBo bo);

    DataVo getReportNum();

    List<DeviceStatisticsByScreenVo> deviceStatistics(Long tunnelId);

    VariableData paramStatistics();

    List<ParamTotalStatistics> paramTotalStatistics();

    List<ParamTotalStatistics> todayAlarm();

    WeekData alarmStatistics();

    List<ParamTotalStatistics> sysSystemReportService();


    List<TunnelStats> importantDevice();

    NoticeVo maintenancePlan();

    void setMaintenancePlan(NoticeVo noticeVo);

    DeviceAlarmVo alarmLatest();

    DashVo getReportInfo(ReportChartBo bo);

    TableDataInfo<DeviceAlarmVo> getReportAlarm(ReportChartBo bo, PageQuery pageQuery);

    TableDataInfo<SysSystemReportVo> getReportLogList(ReportChartBo bo, PageQuery pageQuery);
}

